package com.jk.common.datasource;

import lombok.extern.slf4j.Slf4j;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

import static com.jk.common.datasource.DynamicDataSourceContextHolder.getDataSource;

/**
 * 动态数据源
 * 由于DynamicDataSource是单例的，线程不安全，所以使用ThreadLocal保证线程安全，由DynamicDataSourceContextHolder实现
 * @author cuiP
 * Created by JK on 2017/6/21.
 */
@Slf4j
public class DynamicDataSource extends AbstractRoutingDataSource {
    @Override
    protected Object determineCurrentLookupKey() {
        RoutingStrategy dataSource = getDataSource();
        log.info("当前操作使用的数据源：{}", dataSource);
        return dataSource;
    }
}
